這辛苦的三十天總於結束了,當初原本只是想要理解直播相關協議的東西一下,但是卻發現越來越多奇怪的名詞跑了出來,就算大概的知道 HLS 是要做什麼,但你總是會覺得前後知識好像缺了什麼,別人問你一下沒有 HLS 前是如何處理直播傳輸你大概就會倒了,然後上網查查相關知識,但卻發現總是沒有連貫起來的知識,越看越冒出更多的名詞,這對一名想入門影音直播開發的初學者,真的非常的辛苦。
因此最後就想說當個好人將這方面的知識都整理成一條線好了,因此就產生了這三十篇的文章。
這三十天的文章基本上理解完後,要開發出一個直播應用事實上就不是太難的事情了,而且你有了這三十篇的知識你接下來要將直播應用開發的更好,你就也更有本錢去學習更進階的東西囉。
接下來這篇文章就來總結一下這三十天咱們學習了那些東西。
基本上前二十篇是最基礎的東西,這幾篇文章就在說明,如何將一個人的聲音或影像傳遞給對方。。
!
首先這五篇文章我們學習了聲音與影像是如何的儲放在電腦裡面,並且因為原始的聲音與影像太大,所以我們需要使用編碼來進行壓縮,最後就準備需要將聲音與影像進行封裝,為了可以讓別人一打開來知道要如何處理這一段聲音或影像編碼。
30-02之聲音的採集與原理
30-03之聲音的編碼與壓縮
30-04之影像的採集與原理
30-05之影像的編碼與壓縮
30-06之聲音與影像的封裝
接下來的兩篇文章,咱們就使用 WebRTC 的一些東西,來實作如何的採集聲音與影像,並且最後將它封裝成一個檔案。
30-07之Web 如何進行語音與影像採集 ?
30-08之 WebRTC 採集的詳細說明與聲音的加工
咱們已經可以將聲音與影像封裝後,就可以開始傳輸給遠方的某個人。
我們一開始先探討讓對方收到聲音與影像的方法有那些。
接下來花了幾篇文章來理解網路傳輸協議。
30-10之通訊協議的基本常識
30-11之 TCP 與 UDP 協議
30-12之 RTP/RTCP 傳輸協議
30-13之 RTSP 傳輸協議
30-14之 RTMP 傳輸協議
30-15之 HLS 傳輸協議
30-16之 HTTP-FLV 傳輸協議
30-17之 MPEG-DASH 傳輸協議
30-18 之影音傳輸協議總整理
在理解完上面幾篇文章以後,我們應該是可以將聲音與影像傳輸給遠方的某個人。
某個人透過網路傳輸協議收到了這一段聲音與影像以後,我們接下來就是要將聲音與影像直出,事實上它的過程就是與上面的採集、編碼、封裝相反的過程。
30-19 之收到聲音後要如何的播出呢 ? ( FFMpeg )
基本概念學習完後,接下來就來進行一些實際上的實作。
下面幾篇文章中,我們簡單的實作了直播與點播的功能,並且探討了最簡單版本的問題,並且在使用 CDN 加以的改善,事實上到了這裡,大部份就是一般直播與點播平台的雛形。
30-20之如何建立像 KKTV 一樣的點播功能呢 ?
30-21之如何建立的像 17 一樣的直播功能呢 ?
30-22之點播與直播可動版問題探討
30-23之 CDN 的說話島 ( AWS CloudFront CDN 實作 )
30-24之直播與點播可動版的改良 ( 正式版 )
最後的幾篇文章,就來探討一些更進階的東西,那就是連麥直播互動,這個應用幾乎算是影音直播開發的一到高牆,沒有上面幾篇基礎文章的觀念,那是非常難完成的。
30-25之直播連麥的挑戰與方案 ( P2P )
30-26之 WebRTC 的 P2P 即時通信與小範例
30-27之 WebRTC 的 Signaling Server
30-28之 WebRTC 連線前傳 - 為什麼 P2P 連線很麻煩 ? ( NAT )
30-29之 WebRTC 的 P2P 打洞術 ( ICE )
這裡順到說一下 WebRTC 並不一定是連麥直播的最佳解,但是它裡面所使用的概念,我覺得可以幫助我們導到最佳解,因此這裡才將它拿出來探討。